#ifndef CHARTSERVER_H
#define CHARTSERVER_H

#include <muduo/net/TcpServer.h>
#include <muduo/net/EventLoop.h>

using namespace muduo;
using namespace muduo::net;

// 聊天服务器主类
class ChatServer
{
public:
    // 初始化聊天服务器对象
    ChatServer(EventLoop *_loop, const InetAddress &_listenAddr, const string &_nameArg);

    // 启动服务
    void Start();

private:
    // 上报链接相关信息的回调函数
    void OnConnectionCallBack(const TcpConnectionPtr &_conn);

    // 上报读写事件相关信息的回调函数
    void OnMessageCallBack(const TcpConnectionPtr &_conn, Buffer *_buffer, Timestamp _time);

private:
    TcpServer server_; // 组合的muduo库，实现服务器功能的类对象
    EventLoop *loop_;  // 指向事件循环对象的指针
};

#endif